#!/usr/bin/env bash
set -euo pipefail

# ------------------------------------------------------------
# 项目根目录（脚本所在位置）
# ------------------------------------------------------------
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# ------------------------------------------------------------
# GDB 可执行文件（默认 gdb，可通过环境变量覆盖）
# ------------------------------------------------------------
GDB_BIN="${GDB:-gdb}"

# ------------------------------------------------------------
# 配置文件路径：
# - 默认为 config/sample.yml
# - 可通过第一个命令行参数指定
# ------------------------------------------------------------
CONFIG_PATH="${1:-${ROOT_DIR}/config/sample.yml}"

if [[ ! -f "${CONFIG_PATH}" ]]; then
    echo "[algviz] 配置文件不存在: ${CONFIG_PATH}" >&2
    exit 1
fi

# 取绝对路径，避免 GDB 内部相对路径问题
CONFIG_PATH="$(cd "$(dirname "${CONFIG_PATH}")" && pwd)/$(basename "${CONFIG_PATH}")"

# ------------------------------------------------------------
# 运行 GDB：
# - -q 静默模式
# - -batch 在程序结束后退出（无交互）
# - -ex 依次执行：source gdb_layer、algviz-load，后者会自动 run
# ------------------------------------------------------------
"${GDB_BIN}" -q -batch \
    -ex "source ${ROOT_DIR}/scripts/gdb_layer.py" \
    -ex "algviz-load ${CONFIG_PATH}"

echo "[algviz] 调试结束，事件快照已写入配置指定的日志文件。"